<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <link rel="Stylesheet" type="text/css" href="default.css" />
  <meta http-equiv="Content-Type" content=
  "text/html; charset=utf-8" />

  <title>Словарь терминов</title>
  <style type="text/css">
  </style>
</head>

<body>
  <h1>Словарь терминов</h1>

  <p>Эффективное использование любого инструмента невозможно без
  понимания терминологии, специфичной для соответствующей
  предметной области. В данном глоссарии дана расшифровка
  терминологии, применяемой в разрезе использования программы
  VMProtect. Глоссарий не претендует на универсальность и
  всеохватность, предложенное в нем толкование терминов может
  отличаться от классического.</p>

  <p><a name="ByteCode" id="ByteCode"><strong>Байт-код</strong></a> - код, полученный после
  преобразования машинных команд реального процессора в команды
  виртуальной машины.</p>

  <p><a name="Virtualization" id="Virtualization"><strong>Виртуализация</strong></a> - процесс преобразования части
  исполняемого кода приложения в команды виртуальной машины,
  обладающей неизвестной потенциальному взломщику системой команд,
  архитектурой и логикой работы. Виртуализированные участки кода
  выполняются интерпретатором (исполнителем виртуальной машины) без
  предварительного преобразования в машинные коды процессора. В
  общем случае задача реинжиниринга виртуализированных фрагментов
  сводится к изучению архитектуры виртуальной машины, созданию
  дизассемблера, соответствующего архитектуре имитируемого
  виртуальной машиной процессора, и анализу дизассемблированного
  кода.</p>

  <p><a name="VirtualMachine" id="VirtualMachine"><strong>Виртуальная машина</strong></a> - программный код,
  непосредственно выполняющий байт-код в защищенной программе.</p>

  <p><a name="Watermarks" id="Watermarks"><strong>Водяные
  знаки</strong></a> - уникальный для каждого пользователя массив
  байт, позволяющий однозначно идентифицировать легального
  владельца взломанной копии программы.</p>

  <p><a name="Mutation" id="Mutation"><strong>Мутация</strong></a> - замена исходной команды аналогом
  или определенной последовательностью команд, обеспечивающей тот
  же результат, что и исходная команда.</p>

  <p><a name="Obfuscation" id="Obfuscation"><strong>Обфускация</strong></a> - совокупность методик и средств,
  направленных на затруднение анализа программного кода. В
  зависимости от языка программирования, на котором написана
  защищаемая программа, используются различные типы
  программ-обфускаторов. При обфускации приложений, написанных на
  интерпретируемых языках (Perl, PHP и др.), изменения вносятся в
  исходные тексты: удаляются комментарии, переменным присваиваются
  бессмысленные имена, выполняется шифрация строковых констант и
  т.д. При обфускации программ, написанных на Java / .NET,
  выполняют преобразования байт-кода, обрабатываемого виртуальной
  машиной. При обфускации скомпилированных программ модифицируют
  машинный код: в него вносятся "мусорные" команды, "мертвый код",
  случайные переходы, выполняется мутация исходных команд, часть
  операций переносится в стек, а также выполняются различные
  структурные (реже математические) преобразования. При
  реинжиниринге обфусцированых участков кода их пытаются привести в
  исходный вид, что при определенном подходе к обфускации
  становится очень трудоемкой задачей.</p>

  <p><a name="Protector" id="Protector"><strong>Программа-протектор</strong></a> - программа,
  предназначенная для защиты других программных продуктов от
  взлома. Подавляющее большинство современных протекторов не
  модифицируют исходный код приложения, а выполняют его
  упаковку/шифрацию, при этом основной упор сделан на защиту
  программы (процедуры) распаковки/расшифровки.</p>

  <p><a name="EntryPoint" id="EntryPoint"><strong>Точка входа в
  программу (EntryPoint)</strong></a> - представляет собой
  начальный адрес, с которого начинается исполнение загруженной в память программы.</p>

  <p><a name="Pack" id="Pack"><strong>Упаковка</strong></a> - метод
  защиты кода приложения, при котором производится сжатие
  исполняемого файла программы и/или используемых библиотек с
  помощью нестандартных алгоритмов. При использовании упаковки
  защищаемый программный код сжимается упаковщиком, а при запуске
  приложения у конечного пользователя производится его полная или
  частичная распаковка.</p>

  <p><a name="Crypt" id="Crypt"><strong>Шифрация</strong></a> - защита части кода приложения с
  помощью криптостойких алгоритмов. Программное обеспечение,
  защищенное с помощью шифрации, требует от конечного пользователя
  ввода кода активации, который снимает установленные разработчиком
  ограничения незарегистрированной версии.</p><br />
  <br />
  <br />
  <br />
  <br />
  <hr noshade="noshade" size="1" />

  <div align="center">
    © 2006-2015 Copyright VMProtect Software
  </div>
</body>
</html>
